package com.wh.wisdomsite.xbox.core.event;

import java.util.List;

/**
 * 核心事件分发类,根据泛型匹配到事件,然后分发到所有监听器上
 * 只能初始时,进行操作,不能动态注册事件
 * User: yl
 * Date: 13-2-22
 * Time: 上午11:35
 * To change this template use File | Settings | File Templates.
 */
public interface XboxEventMulticaster {

    /**
     * 增加一个监听器
     * @param listener
     */
    void addListener(XboxEventListener listener);


    /**
     * 增加一组监听器
     * @param xboxEventListeners
     */
    void addListener(List<XboxEventListener> xboxEventListeners);


    /**
     * 删除某个监听器
     * @param listener
     */
    void removeListener(XboxEventListener listener);


    /**
     * 删除所有监听器
     */
    void removeAllListener();


    /**
     * 分发事件
     * @param event
     */
    void multicaster(XboxEvent event);
}
